Memuat Bab 12…

Navigasi:  |  F11 fullscreen
🚀
🔀
🌐
💧
🐙
BAB 12 · SEMESTER 2

Livewire, GitHub & Deployment

Front-End Masterclass:

💧 Laravel Livewire 🐙 Git & GitHub 🌐 Deployment 🏆 Final Project
Roadmap Pembelajaran

Peta Materi Bab 12

Tujuh bagian yang akan membawamu dari menulis komponen interaktif sampai aplikasi tampil online di internet.

BAGIAN A
💧

Laravel Livewire

UI reaktif tanpa reload

BAGIAN B
🌳

Git Fundamental

Commit, branch, merge

BAGIAN C
🐙

GitHub Workflow

Push, pull, kolaborasi

BAGIAN D
🌐

Deployment

Hosting, domain, DNS, SSL

BAGIAN E
⚙️

Production Setup

Cache, queue, optimize

BAGIAN F
🛠️

Maintenance

Log, backup, security

BAGIAN G
🏆

Final Project

4 pilihan proyek

TUGAS
📝

3 Latihan

Git · Livewire · Deploy

Bagian A · Livewire

Apa itu Laravel Livewire?

Analogi: Bayangkan kamu mengisi formulir di kertas. Cara lama (tanpa Livewire) seperti harus memfotokopi ulang seluruh kertas setiap kali menulis satu huruf. Livewire seperti pulpen ajaib — kamu cukup menulis, halaman langsung berubah tanpa di-fotokopi ulang.

❌ Tanpa Livewire (reload penuh)

Halaman REFRESH terus…

Setiap aksi → seluruh halaman dimuat ulang → terasa lambat & "berkedip".

✅ Dengan Livewire (reaktif)

Suka: 0

Hanya bagian yang berubah yang diperbarui. Cepat, mulus, tanpa nulis JavaScript.

Livewire = framework full-stack untuk Laravel yang membuat antarmuka dinamis & interaktif hanya dengan PHP — tanpa harus mahir JavaScript.

Bagian A · Component

Membuat Komponen Livewire

Komponen Livewire terdiri dari 2 file: class PHP (logika) & file blade (tampilan). Buat keduanya sekaligus dengan satu perintah artisan.

terminal
# Membuat komponen ProductTable
php artisan make:livewire ProductTable

# Menghasilkan 2 file:
# app/Livewire/ProductTable.php
# resources/views/livewire/product-table.blade.php
ProductTable.php
namespace App\Livewire;

use Livewire\Component;

class ProductTable extends Component
{
    public $search = '';

    public function render()
    {
        return view('livewire.product-table');
    }
}

Pasang di halaman blade cukup dengan: <livewire:product-table />

flowchart LR A[👤 User beraksi] --> B[Request ke server] B --> C[Method PHP jalan] C --> D[render ulang] D --> E[Kirim HTML diff] E --> F[DOM diperbarui] F --> A

☝️ Livewire Lifecycle: inilah siklus yang berputar setiap kali user berinteraksi.

Bagian A · Reactive UI

Reactive UI & Realtime Search

Ketik di kotak pencarian → daftar langsung tersaring tanpa tombol "cari". Coba demo langsung di bawah! 👇

product-table.blade.php
<input type="text"
   wire:model.live="search"
   placeholder="Cari produk...">

<ul>
  @foreach($products as $p)
    <li>{{ $p->nama }}</li>
  @endforeach
</ul>

🔑 Kuncinya ada di wire:model.live — setiap ketikan otomatis dikirim ke server & tampilan diperbarui.

🔴 LIVE DEMO

    Bagian A · Dynamic

    Dynamic Form, Filter & Dashboard

    Livewire memudahkan form yang validasinya hidup, filter realtime, dan dashboard yang angkanya berubah otomatis.

    📝Dynamic Form

    Validasi muncul saat mengetik, tanpa kirim ulang halaman.

    wire:model$rules

    🔎Realtime Filter

    Pilih kategori → tabel langsung menyesuaikan datanya.

    wire:model.live

    📊Dynamic Dashboard

    Statistik & grafik diperbarui otomatis lewat polling.

    wire:poll
    DashboardStats.php
    public $rules = [
        'nama'  => 'required|min:3',
        'harga' => 'required|numeric',
    ];
    
    // dashboard auto-refresh tiap 5 detik
    <div wire:poll.5s> Total Order: {{ $totalOrder }} </div>
    Bagian A · Pagination

    Pagination di Livewire

    Data ribuan baris? Bagi menjadi halaman-halaman kecil. Livewire menyediakan pagination yang berpindah tanpa reload.

    ProductTable.php
    use Livewire\WithPagination;
    
    class ProductTable extends Component
    {
        use WithPagination;
    
        public function render()
        {
            return view('livewire.product-table', [
                'products' => Product::paginate(10),
            ]);
        }
    }

    📄 Simulasi Pagination

      Bagian B · Git

      Git Fundamental

      Analogi: Git seperti tombol "save game". Setiap commit adalah titik simpan yang bisa kamu kembali ke sana kapan saja kalau ada yang rusak.

      • Repository — folder proyek yang dilacak Git
      • Commit — titik simpan + catatan perubahan
      • Branch — jalur kerja paralel (eksperimen aman)
      • Merge — menggabungkan branch ke jalur utama
      • Pull Request — ajuan "tolong gabungkan kode saya"
      flowchart LR A[Working Dir] -->|git add| B[Staging] B -->|git commit| C[Local Repo] C -->|git push| D[(GitHub)] D -->|git pull| A
      Bagian B · Branch

      Git Branch & Merge

      Branch = jalur kerja terpisah. Kamu bisa bereksperimen di branch feature tanpa merusak main, lalu merge bila sudah siap.

      main feature merge ✓
      terminal
      git checkout -b feature/login   # buat & pindah ke branch baru
      git add . && git commit -m "tambah fitur login"
      git checkout main             # kembali ke main
      git merge feature/login        # gabungkan!
      Bagian C · GitHub

      GitHub Workflow

      Analogi: GitHub itu "Google Drive-nya developer" — tempat menyimpan kode di awan, berbagi dengan tim, dan menyimpan seluruh riwayat perubahan.

      📁

      Folder di laptop

      ☁️

      git push

      🐙

      Repo GitHub

      ⬆️ Push

      Kirim kode lokal ke GitHub.

      ⬇️ Pull

      Ambil update terbaru dari GitHub.

      📥 Clone

      Salin seluruh repo ke laptop.

      👥 Collab

      Banyak orang kerja 1 proyek.

      Bagian C · Open Source

      Open Source & Pull Request Flow

      Cara berkontribusi ke proyek orang lain: fork → ubah → pull request. Pemilik proyek lalu me-review & menggabungkan kontribusimu.

      flowchart LR A[Fork repo] --> B[Clone ke laptop] B --> C[Buat branch] C --> D[Commit perubahan] D --> E[Push ke fork] E --> F[Buka Pull Request] F --> G{Review} G -->|Disetujui| H[Merge ke proyek] G -->|Revisi| D
      Bagian D · Deployment

      Deployment: Shared vs VPS vs Cloud

      Analogi tempat tinggal: arahkan kursor ke kartu untuk melihat detail (kartu berputar 🔄).

      🏠

      Shared = Kos

      Berbagi fasilitas, murah

      🏢

      VPS = Apartemen

      Ruang sendiri, atur bebas

      🏨

      Cloud = Hotel

      Bayar sesuai pakai, skalabel

      🏠 Shared Hosting

      Termurah · Pemula
      • Mudah dipakai
      • Resource dibagi
      • Kontrol terbatas
      ↻ hover untuk detail

      Cocok untuk

      • ✓ Web portofolio
      • ✓ Blog / company profile
      • ✓ Trafik kecil
      • 💰 ± Rp10rb/bulan

      🏢 VPS

      Menengah · Kontrol penuh
      • Resource khusus
      • Akses root
      • Perlu skill server
      ↻ hover untuk detail

      Cocok untuk

      • ✓ Aplikasi Laravel serius
      • ✓ Trafik menengah
      • ✓ Butuh konfigurasi custom
      • 💰 ± Rp80rb/bulan

      ☁️ Cloud

      Skalabel · Profesional
      • Auto-scaling
      • Bayar sesuai pakai
      • Sangat andal
      ↻ hover untuk detail

      Cocok untuk

      • ✓ Aplikasi besar
      • ✓ Trafik tinggi/fluktuatif
      • ✓ AWS, GCP, Azure
      • 💰 Sesuai pemakaian
      Bagian D · DNS

      Domain, DNS & SSL

      Domain = alamat (mis. tokoku.com). DNS = buku telepon internet yang menerjemahkan nama jadi alamat IP. SSL = gembok 🔒 yang membuat https aman.

      flowchart LR U[👤 Ketik tokoku.com] --> R[DNS Resolver] R --> N[Name Server] N --> IP[Dapat IP 103.x.x.x] IP --> S[Server Website] S --> SSL[🔒 SSL/HTTPS] SSL --> U

      🌐 Domain

      Nama unik website, dibeli per tahun di registrar.

      📖 DNS

      Mengubah nama domain menjadi alamat IP server.

      🔒 SSL

      Enkripsi data, gembok hijau, wajib untuk https.

      Bagian E · Production

      Laravel Production Setup

      Sebelum aplikasi tampil ke publik, jalankan checklist ini. Klik tiap item untuk menandai selesai ✓

      Set environment productionAPP_ENV=production · APP_DEBUG=false
      Optimasi aplikasiphp artisan optimize
      Cache config & routephp artisan config:cache route:cache
      Jalankan queue workerphp artisan queue:work
      Buat storage linkphp artisan storage:link
      Selesai: 0 / 5
      deploy.sh
      # .env produksi
      APP_ENV=production
      APP_DEBUG=false
      
      # perintah optimasi sekali jalan
      php artisan optimize
      php artisan config:cache
      php artisan route:cache
      php artisan view:cache
      
      # jalankan antrian & link storage
      php artisan storage:link
      php artisan queue:work --daemon
      Bagian F · Debugging

      Debugging & Monitoring

      Saat aplikasi error di production, log adalah mata-mata kita. Laravel menyimpan semua kejadian di storage/logs/laravel.log.

      storage/logs/laravel.log
      [2026-06-05 09:12:01] production.INFO: User login berhasil id=42
      [2026-06-05 09:14:33] production.WARNING: Cache miss pada produk populer
      [2026-06-05 09:15:10] production.ERROR: SQLSTATE[42S02] Table 'orders' not found
      [2026-06-05 09:15:10] production.ERROR:   at OrderController.php:58

      🐞 Error Log

      Lihat tail -f laravel.log untuk pantau realtime.

      📈 Monitoring

      Tools: Laravel Telescope, Sentry, atau uptime monitor.

      🔔 Alert

      Kirim notifikasi ke email/Telegram saat error fatal.

      Bagian F · Maintenance

      Maintenance & Security Update

      Aplikasi yang live butuh perawatan rutin, sama seperti motor butuh servis berkala. 🔧

      💾 Backup DB

      Cadangkan database otomatis tiap hari.

      harian

      🔄 Update App

      Tarik kode terbaru & jalankan migrasi.

      git pull

      🛡️ Security Patch

      Update dependency yang punya celah keamanan.

      composer update

      🧹 Bersihkan Log

      Rotasi log agar disk tidak penuh.

      bulanan
      maintenance
      # aktifkan mode maintenance saat update
      php artisan down
      git pull origin main
      composer install --no-dev
      php artisan migrate --force
      php artisan up   # kembali online
      Bagian G · Final Project

      Final Project Semester 2

      Pilih SATU proyek untuk membuktikan semua skill semester 2. Arahkan kursor ke kartu — efek 3D tilt aktif! ✨

      🛒

      E-Commerce

      Toko online: katalog produk, keranjang, checkout, dashboard admin.

      🏫

      School System

      Sistem sekolah: data siswa, nilai, absensi, jadwal pelajaran.

      📦

      Inventory

      Manajemen stok gudang: barang masuk/keluar, laporan stok.

      📚

      E-Library

      Perpustakaan digital: koleksi buku, peminjaman, denda otomatis.

      ⭐ Wajib pakai: Laravel Livewire Git/GitHub Deployment online

      Tugas 1 · Bobot 30%

      📝 Tugas 1 — Git Challenge

      Buktikan kamu menguasai alur kerja Git & GitHub dari nol hingga merge.

      Langkah-langkah:

      1. Buat repository baru di GitHub
      2. Commit minimal 5 kali dengan pesan jelas
      3. Buat branch feature
      4. Lakukan merge ke branch main
      5. Screenshot grafik commit sebagai bukti
      KriteriaBobot
      Repository dibuat20%
      ≥ 5 commit bermakna30%
      Branch feature25%
      Merge berhasil25%
      🏆 Klik centang di bawah saat selesai untuk membuka badge!
      Tandai Tugas 1 Selesai
      Tugas 2 · Bobot 35%

      📝 Tugas 2 — Livewire Realtime Search

      Buat komponen Livewire pencarian realtime sederhana yang menyaring daftar saat diketik.

      Langkah-langkah:

      1. php artisan make:livewire SearchBox
      2. Tambah property $search
      3. Pakai wire:model.live di input
      4. Filter data & tampilkan hasilnya
      5. Rekam video / GIF demo berjalan
      KriteriaBobot
      Komponen dibuat20%
      wire:model.live benar30%
      Filter berfungsi30%
      Demo direkam20%
      🏆 Selesaikan untuk menyalakan piala!
      Tandai Tugas 2 Selesai
      Tugas 3 · Bobot 35%

      📝 Tugas 3 — Deployment Task

      Deploy aplikasi Laravel ke hosting gratis (Railway atau Render) hingga bisa diakses lewat URL publik.

      Langkah-langkah:

      1. Push proyek ke GitHub
      2. Hubungkan repo ke Railway/Render
      3. Atur environment variable produksi
      4. Jalankan migrasi database online
      5. Screenshot aplikasi live + URL-nya
      KriteriaBobot
      Push ke GitHub15%
      Terhubung ke hosting25%
      Aplikasi bisa diakses online40%
      Bukti screenshot + URL20%
      🏆 Live di internet = piala menyala!
      Tandai Tugas 3 Selesai
      🎓
      🚀
      💪
      🏆
      Penutup Bab 12

      Selamat! Kamu Siap Final Project 🎉

      Dari komponen Livewire yang reaktif, alur Git yang rapi, sampai aplikasi yang tampil online — kamu sudah punya semua bekal seorang web developer junior. Sekarang saatnya berkarya!

      ✅ Livewire ✅ Git & GitHub ✅ Deployment ✅ Production Ready

      "Kode terbaik bukan yang sempurna, tapi yang berani kamu deploy." 🚀

      1 / 21